home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk19 / blinker / linkmodules.sub < prev    next >
Text File  |  1995-03-18  |  1KB  |  61 lines

  1. '---------------------------------------------------------------------------
  2. '
  3. '                     Link Modules
  4. '
  5. '
  6. '               Copyright 1987 by Brian Zupke
  7. '
  8. '      Builds list containing names of modules needed for
  9. '  a complete build.  If all modules are found, then BuildComplete
  10. '  is flagged TRUE.
  11.  
  12.   SUB LinkModules.SUB(ProgramName$,ModulesUsed$(1),Used,BuildComplete) STATIC
  13. '
  14. '
  15. '  Allow up to 40 different Subprogram names called.
  16. '
  17.   DIM ModulesCalled$(40)
  18. '
  19. '  Initialize
  20. '
  21.   BuildComplete = FALSE
  22.   Used = 1
  23.   Scanned = 0
  24.   ModulesUsed$(Used) = ProgramName$
  25.   RepeatUntil = TRUE
  26. '
  27. '  Build List
  28. '
  29.   WHILE RepeatUntil
  30. '
  31. '  Get name of next module to be scanned.
  32. '
  33.     ModuleName$ = ModulesUsed$(Scanned + 1)
  34.     CALL ScanModule.SUB(ModuleName$,ModulesCalled$(),Called,ModuleScanned)
  35. '
  36. '  Compare any calls found with modules used list
  37. '
  38.      IF Called > 0 THEN
  39.       FOR x = 1 TO Called
  40.         IsNotIn = TRUE
  41.         FOR y = 1 TO Used
  42.           IF UCASE$(ModulesCalled$(x)) = UCASE$(ModulesUsed$(y)) THEN IsNotIn = FALSE
  43.         NEXT y
  44. '
  45. '  Add name to list if it is not used
  46. '
  47.          IF IsNotIn THEN
  48.           Used = Used + 1
  49.           ModulesUsed$(Used) = ModulesCalled$(x)
  50.         END IF
  51.       NEXT x
  52.     END IF
  53.     Scanned = Scanned + 1
  54.     IF (Used = Scanned) OR (NOT ModuleScanned) THEN RepeatUntil = FALSE
  55.   WEND
  56. '
  57. '  Build is complete if last module scanned successfully
  58. '
  59.   BuildComplete = ModuleScanned
  60.   END SUB
  61.